#ifndef __BUFFER_H
#define __BUFFER_H
#include <pthread.h>

//定义一个 buffer结构体 
typedef struct BufferStruct
{
    unsigned char * array;      //队列执政
    int siez;         //队列的最大长度
    int read;         //队列的读下标
    int write;        //队列的写下标
    int len;          //队列中的实际数据长度
    pthread_mutex_t lock;   //队列锁               
}Buffer;


/**
 * 缓存区初始化  缓存区实例需要全部给0 
 * buffer   一个缓存区实例
 * length   缓冲区大小
 * return   成功返回0   失败返回-1
 */
int Buffer_Init(Buffer *buffer,int length);


/**
 * 删除缓存区
 * buffer   一个缓存区实例
 * return   成功返回0   失败返回-1
 */
int Buffer_Free(Buffer *buffer);


/**
 * 缓存区初始化  缓存区实例需要全部给0 
 * buffer   一个缓存区实例
 * buf      存储读取数据的容器
 * len      要读多少数据
 * return   成功返回len  失败返回-1
 */
int Buffer_Read(Buffer *buffer,char * buf,int len);


/**
 * 缓存区初始化  缓存区实例需要全部给0 
 * buffer   一个缓存区实例
 * buf      存储要写出数据的容器
 * len      要写多少数据
 * return   成功返回0   失败返回-1
 */
int Buffer_Write(Buffer *buffer,char *buf,int len);


#endif